Adding moving parts to an R.F.O.

We will add moving parts to the model: a propeller, the gears with the well doors, the ailerons, the elevators and the rudder. Actually, adding a flight control surface is a common process whatever the surface you are dealing with. A thorough explanation for each of them could be pretty boring! I will give you a complete explanation for the aileron and then I suggest that you have a look at the "MyRFO.3DM" file which is in this tutorial directory for the other ones. In that way, it won't be that bad!

The propeller

The propeller will be composed of:

It will be stored into three sub-assies called "PROPSHFT", "PROPBLAB" and "PROPDISK". Create these sub-assies in the MyRFO project.

The shaft:

We are going to build the prop shaft as a cylinder. Select the PROPSHFT sub-assy. Select the front view and set the current plane to y = 6.500. Create a shape of the hexagon kind the center of which is located at:
   0.000  6.5000  0.000
Give it a radius of 0.400 ft. Validate by clicking on the draw button.

Activate the Draw/Build cylinder menu option. Set the coordinates of the vector to:
   0.000  2.5000  0.000
Select the PROPSHFT sub-assy in the destination sub-assy list-box and validate. This is the first part of the shaft. Select the Desk sub-assy. The selected polygon should be the hexagon that was created to support the front part of the cylinder. It is contained in a plane parallel to xOz with a y=9.000 coordinate. We will complete the shaft with a small cone. Activate the Activate the Draw/Build cone menu option. Set the coordinates of the vector to:
   0.000  0.2500  0.000
Select the PROPSHFT sub-assy in the destination sub-assy list-box and validate.

In the sub-assy panel, assign the color attribute to the PROPSHFT sub-assy. Open the sub-assy code page to make it black. This is it for the shaft.


The high speed prop:

We will now create the transparent disk that figures the prop at high speed. Check that you are in the front view and that the current plane "y" coordinate is set to 8.000 ft. Select the PROPDISK sub-assy. Activate the Draw/Shape.../Circle.../16 points menu option. Enter the coordinates of the center:
   0.000  8.000  0.000

and the radius of the circle: radius = 3.000
Validate. May I ask you to define the selected disk as a texture support (CTRL + F3) ? You will understand why in a few moments.

The prop disk must be seen from the aft as well. Activate the Draw/Copy and flip menu option to build other side. We have now two circles... which are hidden. We need triangles... Activate the Sub-Assy/Select all sub-assy chains menu option. Activate then the Selection/Make triangles with selection menu option. Exit the multiple selection mode and reset the multiple selection buffer.

Assign the "Pilot" texture to the PROPDISK sub-assy and open its sub-assy code page. Double-click on the LIMITS instruction. Select the front option and load the default texture support: you just declared the disk as a texture support, didn't you ? Assign the limits:
   left/top =     128,  1
   right/bottom = 255,127

Validate and exit the texture support panel. Look at the bottom of the sub-assy code page. There is a shadow thing:


Click on the down arrow to set it to no shadow: we do not want to see the shadow of a plain disk on the ground when the prop is rotating, do we ? Quit the sub-assy code page.

The propeller blades:

Let's deal with the propeller blades now. In the Graphic Editor front view, set the current plane "y" coordinate to 8.000. Activate the chain creation mode and create a polygon with the following vertices:
   0.000  8.000  0.000
   0.400  8.000  0.800
   0.400  8.000  2.600
   0.000  8.000  3.000
  -0.400  8.000  2.600
  -0.400  8.000  0.800
Check that the PROPBLAD sub-assy is selected and validate. This is the front shape of the blade. Activate the Draw/Rotate chain menu option. Check that the current axis of rotation is Oy and set the coordinates of the center of rotation to:
   x = 0.000  z = 0.000
Enter 120.0 in the rotation angle data field and validate by clicking on the dupl.+rot. button. This is the front shape of the second blade. Do it again to create the front shape of the third blade.

We are finished with the front view of the prop, we need now to create the rear view of it. Activate the Sub-Assy/Select all sub-assy chains menu option and then the Selection/Copy and flip menu option. We've got 6 polygons... but all of them are hidden ! Make triangles with any of them would be boring. AD2K2 will do it for you. Activate again the Sub-Assy/Select all sub-assy chains menu option. Activate now the Selection/Make triangles with selection menu option. Exit the multiple selection mode (depress the multiple selection button of the tool bar) and reset the multiple selection buffer button of the tool bar).

In the sub-assy panel, assign the "Pilot" texture to the PROPBLAD sub-assy. Open the sub-assy code page to assign the texture support and the texture limits: they are exactly the same as for the PROPDISK sub-assy.


Animating the prop:

Animating the prop is not that difficult. We want the whole thing to rotate but we would like to see the blades at low speed and the transparent disk at high speed.

rotate prop PROPSHFT
at low speed PROPBLAD
at high speed PROPDISK

To achieve that animation, we will take advantage of the Model Tree Editor animation features:

Tip: To get more information on the Model Tree Editor nodes, have a look at the Model Tree Editor reference guide.


The prop rolling node performs a rotative animation around an axis parallel to the Oy axis. The location of the prop axis with respect to the Oy axis is to be defined by a vector. In our case, the prop axis is the Oy axis itself: therefore the vector is the null vector. Activate the Utilities/Make a vector (or press CTRL + F4) menu option and enter directly the following coordinates:
    0.000  0.000  0.000
Validate. Click on the button to launch the Model Tree Editor. At the moment, the model tree is as following:

assy sub-assy DICE
sub-assy CANOPY
sub-assy PILOT
sub-assy RWING
sub-assy LWING
light landing

Select the root node and add a rolling node. Select then the rolling node and click on the properties button to set the node attributes:

Validate by clicking on the OK button. Make sure the rolling node is still selected by clicking again on it. Add a sub-assy node to this node. Assign the PROPSHFT sub-assy to the newly created sub-assy node. Click again on the rolling node and add a test node to it. Two grouping nodes are automatically added to this test node. Add a sub-assy node to each of them. Assign the PROPBLAD sub-assy to the first sub-assy node and the PROPDISK sub-assy to the second one. Select the test node and click on the properties button to set its attributes:

Validate. The model tree is now the following:

assy sub-assy DICE
sub-assy CANOPY
sub-assy PILOT
sub-assy RWING
sub-assy LWING
landing light
rotate prop PROPSHFT
test prop low speed node PROPBLAD
high speed node PROPDISK

I have outlined the nodes that have been added. What's the meaning of that stuff ?


the prop at low speed and at high speed

The gears

Let us start with the right gear. The right gear will be composed of:

Create these sub-assies in the MyRFO project.

The gear strut:

Select the RGSTRUT sub-assy.

Tip: Why don't we try that glaring effect on the strut and the damper ?

action option/button data remarks
shape Draw/Shape../hexagon top plane
center: 10.500, 1.500, 0.800
radius: 0.400
T button (top)
basis of the strut
build cylinder Draw/Build cylinder vector option
0.000, 0.000, -2.200
ext button
RGSTRUT sub-assy
strut
validate by clicking on the
build button
move chain select the desk sub-assy
Sub Assy/Move to sub-assy
RGSTRUT sub-assy validate to move the chain into
the RGSTRUT sub-assy
make triangles Draw/Make triangles   make triangles
color attribute then assign a grey color basic color of the strut
glare effect check the glare check box assign a light grey color by
double-clicking on the second
square (this one on the right)
reflected color
Quit the sub-assy code page
to validate

The gear damper:

Select the RGDAMP sub-assy.

action option/button data remarks
shape Draw/Shape../hexagon top plane
center: 10.500, 1.500, -1.300
radius: 0.330
T button (top)
basis of the damper
build cylinder Draw/Build cylinder vector option
0.000, 0.000, -2.500
ext button
RGDAMP sub-assy
damper
validate by clicking on the
build button
move chain select the desk sub-assy
Sub Assy/Move to sub-assy
RGDAMP sub-assy validate to move the chain into
the RGDAMP sub-assy
make triangles Draw/Make triangles   make triangles
color attribute then assign a grey color basic color of the damper
glare effect check the glare check box assign a light grey color by
double-clicking on the second
square (this one on the right)
reflected color
Quit the sub-assy code page
to validate

The wheel:

Select the RWHEEL sub-assy.

action option/button data remarks
shape Draw/Shape../circle (16) side plane
center: 10.140, 1.500, -3.650
radius: 2.000
R button (right)
right flank of the wheel
build cylinder Draw/Build cylinder vector option
-0.600, 0.000, 0.000
ext button
RWHEEL sub-assy
wheel
validate by clicking on the
build button
move chain select the desk sub-assy
Sub Assy/Move to sub-assy
RWHEEL sub-assy validate to move the chain into
the RWHEEL sub-assy
make triangles Draw/Make triangles   make triangles
select right flank click on the C button as many times
as needed to select the right flank
one time should be enough)
  select right flank
make triangles Utilities/Define chain as support   define chain as support
make triangles Draw/Make triangles   make triangles
define texture then double-click on the LIMITS instruction  
texture support ymin, ymax : -0.500, 3.500
zmin, zmax : -5.650, -1.650
side option
load current texture support
texture limits limits right view
left/top:       1, 128
right/bottom: 127, 255
assign texture limits
Quit the sub-assy code page
to validate

The door:

Select the RDOOR sub-assy.

action option/button data remarks
new chain side view, vertices:
11.000,  2.200,  0.480
11.000,  2.850, -2.500
11.000,  0.100, -2.500
11.000,  0.900,  0.480
click on poly to validate
copy and flip Draw/Copy and flip   copy and flip
select all chains Sub Assy/Select all chains   select both chains
make triangles Selection/Make triangles   make triangles out of both chains
quit and reset selection and    
color attribute then assign a light grey color light grey color, no glare
Quit the sub-assy code page
to validate

The gear animation:

The whole animation of the gear (gear deployment/retraction, damping effect, door aperture/closure) will be achieved through three animation nodes and a single rolling node.

animate door
RDOOR block
RDOOR sub-assy
animate gear
RGEAR block
RGSTRUT sub-assy
animate damper
RDAMPR block
RGDAMP sub-assy
rotate wheel RWHEEL
sub-assy

Using three times the same node is a little bit confusing at the beginning, but I am sure you will get accustomed soon because you are gifted... It is not because you use the same node that it performs the same thing. An animation node is associated with a rotation block or a translation block. It is the associated block which defines the kind of animation to be performed. We will define three different blocks for these three nodes.

Tip: To get more information on the animation nodes, have a look at the Model Tree Editor reference guide.


Let us have a closer look at this animation node. A single key is controlling the three following actions :

The two first actions are performed within the
key=0 to key=100 interval.
The
key=100 to key=200 interval is dedicated to the damping effect.

It is convenient to assign the key=0 to key=50 interval to the door aperture/closure and to assign the key=50 to key=100 interval to the gear deployment/retraction.

Therefore, to achieve the animation, you need to create two animation blocks and one translation block. Let us call them RGEAR, RDOOR and DAMPR.

key 0..50 50..100 100..200
  part block name
alpha door RDOOR 90..0
aperture
0..0
no further rotation
gear RGEAR 90..90
no motion
90..0
deployment
0..0
no motion
damper DAMPR 0..0
no motion
0..max
damping effect

Remark: in this project, we use 84 deg. instead of 90.

Let us summarize:

When the gear is retracting, this sequence is inverted: How do we manage to do that? Let's have a look at the following model tree:

assy sub-assy DICE
sub-assy CANOPY
sub-assy PILOT
sub-assy RWING
sub-assy LWING
landing light
rotate prop PROPSHFT
test prop low speed node PROPBLAD
high speed node PROPDISK
animate door
RDOOR block
RDOOR
animate gear
RGEAR block
RGSTRUT
animate damper
RDAMPR block
RGDAMP
rolling wheel RWHEEL

There are four animated branches:

I let you add the required nodes and assign them the appropriate attributes. To do that, you need to create the following transformation blocks:

RGEAR : rotation block
RGEAR curve
key 0 50 100 200
alpha 84 84 0 0

RDOOR : rotation block
RDOOR curve
key 0 50 200
alpha 85 0 0

DAMPR : translation block
NODAMP curve ZDAMP curve
key 0 200 key 0 100 200
alpha 0 0 alpha 0 0 1

You also need to create two hinges and one vector. Quit the Model Tree Editor and select the desk sub-assy.

action option/button data remarks
new chain side view, vertices:
    10.500,  0.700,  0.800
    10.500,  2.500,  0.800
    10.500,  1.500, -0.700
click on poly to validate
define hinge Utilities/Define a hinge 1st point : 10.500,  0.700,  0.800
2nd point : 10.500,  2.500,  0.800
click on the selected points and
validate by clicking on the OK button
hinge for RGEAR
new chain side view, vertices:
    11.000,  0.700,  0.480
    11.000,  2.500,  0.480
    11.000,  1.600, -1.000
click on poly to validate
define hinge Utilities/Define a hinge 1st point : 11.000,  0.700,  0.480
2nd point : 11.000,  2.500,  0.480
click on the selected points and
validate by clicking on the OK button
hinge for RDOOR
define vector Utilities/Make a vector directly option     0.000,  1.500,  -3.650 make a vector for ROTATE WHEEL

Go back to the MOdel Tree Editor and complete the nodes with their hinges and the vector (the icon of the uncomplete nodes are colored with a pink color). This is it for the gear animation. You just have to test it now.


Tip: You have inserted an animation node and it does nothing ? Make sure you have properly set the aircraft.cfg file of your model..


The aileron

Installing the right aileron is quite easy. We will use a right aileron moving node to animate it. Before we do that, we need to design the aileron 3D model.

Look at the right wing. The wing trailing edge is not parallel to the xOy plane. To build the aileron, we will use the intersection builder of the chain editor. Let us build a vertical triangle in the desk. Quit the Model Tree Editor and select the desk sub-assy. Make sure you are in the side view and set the x coordinate of the plane to 10.000.

action option/button data remarks
new chain side view, vertices:
    10.000, -7.900,  6.000
    10.000, 10.000, -2.500
    10.000, -5.800, -9.700
click on poly to validate
the exact position of the vertices does
not matter, click wherever you want to
build the triangle, as long as it is in
the x=10.000 plane
create sub-assy Sub Assy/New sub-assy RAILERON
right aileron sub-assy
create a new sub-assy
new chain top view, 1st vertex: click wherever you
want to create a vertex
2nd vertex: in the align mode,
(CTRL+click) capture the point
located at
20.000, -2.500,  1.140
two vertices
intersection inter. select the plane you have just
created in the desk sub-assy
1st point: 3.500, -4.500, 0.210
2nd point: 20.000, -2.500, 1.140
click on OK at each step
then click on OK to validate
the intersection
last vertex -
10.000, -3.712,  0.576
click on add to validate
eliminate vertex - select first vertex
and click on delete
eliminate junk vertex
click on poly to validate
copy and flip Draw/Copy and flip - copy and flip
select all chains Sub Assy/
Select all chains
- select both chains
make triangles Selection/
Make triangles
- make triangles
quit and reset selection and    
color attribute , assign a blue color blue color
Quit the sub-assy code page
to validate

The right aileron node requires a hinge to work properly. This hinge will be built by using two vertices of the RAILERON sub-assy itself.

action option/button data remarks
define hinge Utilities/Define a hinge 1st point : 10.000, -3.712,  0.576
2nd point : 20.000, -2.500,  1.140
click on the selected points and
validate by clicking on the OK button

Launch the Model Tree Editor to complete the job. Select the root node and add a moving node to it. Select the newly created moving node and click on the properties button to set the moving node attributes in the the moving attribute window:

Validate to go back to the Model Tree Editor. Make sure the moving node is selected by clicking on it and add a sub-assy node. Assign the RAILERON sub-assy to this sub-assy node.

assy sub-assy DICE
sub-assy CANOPY
sub-assy PILOT
sub-assy RWING
sub-assy LWING
landing light
rotate prop PROPSHFT
test prop low speed node PROPBLAD
high speed node PROPDISK
animate door
RDOOR block
RDOOR
animate gear
RGEAR block
RGSTRUT
animate damper
RDAMPR block
RGDAMP
rolling wheel RWHEEL
moving right
aileron
RAILERON


the model tree


the 3D model

It's time to compile and have a look at the result.


As you can imagine, adding the left aileron, the rudder and the stabilizers requires the same kind of operations. Guiding you step by step into the detailed design of these moving surfaces would be a boring stuff for both of us. I suggest you that we skip this phase. You can find in the directory of this tutorial the "MyRFO.3DM" file of the complete model. If you want any more details, do not hesitate to have a look at it.



The antenna

Let us add an antenna, just for the fun. Save and close the MyRFO project and open the Tail assembly file. Select the Lines sub-assy and click on the new chain button. Enter the two following vertices :
    0.000, -19.000,   7.800
    0.000,  -6.500,   3.500

Validate by clicking on the line button.

Open the Model Tree Editor and select the root node (or click on the add to root button). Add a wire node to it. Select this wire node and click on the properties button to open the wire attribute window.


Select a color (why not a red one ?) and click on the small blue button to load the line we have just created. Validate. Compile the assembly, save it and load again the myRFO file to compile it with the updated assembly.

Hey, guys, you know what?
...
This is it!
That's not exactly what you would call a beautiful aircraft. It would not rank in the top ten in a beauty contest... but you did it ! You've got your AD2K2 designer graduation.
Congratulation!


Anyway, that red antenna is pretty nice, isn't it ?


copyright Hervé Devred, 2003